home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 April: Mac OS SDK / Dev.CD Apr 98 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / PInterfaces / QD3DViewer.p < prev    next >
Encoding:
Text File  |  1998-02-12  |  10.7 KB  |  263 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        QD3DViewer.p
  3.  
  4.      Contains:    MacOS Viewer Controller Interface File.                                
  5.  
  6.      Version:    Technology:    Quickdraw 3D 1.5.4
  7.                  Release:    Universal Interfaces 3.1
  8.  
  9.      Copyright:    © 1995-1998 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT QD3DViewer;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __QD3DVIEWER__}
  28. {$SETC __QD3DVIEWER__ := 1}
  29.  
  30. {$I+}
  31. {$SETC QD3DViewerIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __QD3D__}
  35. {$I QD3D.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __QD3DGROUP__}
  38. {$I QD3DGroup.p}
  39. {$ENDC}
  40.  
  41. {$IFC TARGET_OS_MAC }
  42. {$IFC UNDEFINED __EVENTS__}
  43. {$I Events.p}
  44. {$ENDC}
  45. {$IFC UNDEFINED __MACTYPES__}
  46. {$I MacTypes.p}
  47. {$ENDC}
  48. {$IFC UNDEFINED __QUICKDRAW__}
  49. {$I Quickdraw.p}
  50. {$ENDC}
  51. {$ENDC}  {TARGET_OS_MAC}
  52.  
  53.  
  54. {$PUSH}
  55. {$ALIGN POWER}
  56. {$LibExport+}
  57.  
  58. {$IFC TARGET_OS_MAC }
  59.  
  60. TYPE
  61.     TQ3ViewerObject                        = Ptr;
  62. {$IFC TYPED_FUNCTION_POINTERS}
  63.     TQ3ViewerDrawingCallbackMethod = FUNCTION(theViewer: TQ3ViewerObject; data: UNIV Ptr): OSErr; C;
  64. {$ELSEC}
  65.     TQ3ViewerDrawingCallbackMethod = ProcPtr;
  66. {$ENDC}
  67.  
  68.  
  69. CONST
  70.     kQ3ViewerShowBadge            = $01;
  71.     kQ3ViewerActive                = $02;
  72.     kQ3ViewerControllerVisible    = $04;
  73.     kQ3ViewerDrawFrame            = $08;
  74.     kQ3ViewerDraggingOff        = $10;
  75.     kQ3ViewerButtonCamera        = $20;
  76.     kQ3ViewerButtonTruck        = $40;
  77.     kQ3ViewerButtonOrbit        = $80;
  78.     kQ3ViewerButtonZoom            = $0100;
  79.     kQ3ViewerButtonDolly        = $0200;
  80.     kQ3ViewerButtonReset        = $0400;
  81.     kQ3ViewerOutputTextMode        = $0800;
  82.     kQ3ViewerDragMode            = $1000;
  83.     kQ3ViewerDrawGrowBox        = $2000;
  84.     kQ3ViewerDrawDragBorder        = $4000;
  85.     kQ3ViewerDraggingInOff        = $8000;
  86.     kQ3ViewerDraggingOutOff        = $00010000;
  87.     kQ3ViewerDefault            = $80000000;
  88.  
  89.     kQ3ViewerEmpty                = 0;
  90.     kQ3ViewerHasModel            = $01;
  91.     kQ3ViewerHasUndo            = $02;
  92.  
  93.  
  94. TYPE
  95.     TQ3ViewerCameraView         = LONGINT;
  96. CONST
  97.     kQ3ViewerCameraRestore        = {TQ3ViewerCameraView}0;
  98.     kQ3ViewerCameraFit            = {TQ3ViewerCameraView}1;
  99.     kQ3ViewerCameraFront        = {TQ3ViewerCameraView}2;
  100.     kQ3ViewerCameraBack            = {TQ3ViewerCameraView}3;
  101.     kQ3ViewerCameraLeft            = {TQ3ViewerCameraView}4;
  102.     kQ3ViewerCameraRight        = {TQ3ViewerCameraView}5;
  103.     kQ3ViewerCameraTop            = {TQ3ViewerCameraView}6;
  104.     kQ3ViewerCameraBottom        = {TQ3ViewerCameraView}7;
  105.  
  106.  
  107. {*****************************************************************************
  108.  **                                                                             **
  109.  **        Return viewer version number                                         **
  110.  **                                                                             **
  111.  ****************************************************************************}
  112. FUNCTION Q3ViewerGetVersion(VAR majorRevision: UInt32; VAR minorRevision: UInt32): OSErr; C;
  113.  
  114.  
  115. {*****************************************************************************
  116.  **                                                                             **
  117.  **        Return viewer release version number                                 **
  118.  **        (in 'vers' format - e.g. 0x01518000 ==> 1.5.1 release)                 **
  119.  **                                                                             **
  120.  ****************************************************************************}
  121. FUNCTION Q3ViewerGetReleaseVersion(VAR releaseRevision: UInt32): OSErr; C;
  122.  
  123. {*****************************************************************************
  124.  **                                                                             **
  125.  **                        Creation and destruction                             **
  126.  **                Note that this is not a QuickDraw 3D object                     **
  127.  **                                                                             **
  128.  ****************************************************************************}
  129. FUNCTION Q3ViewerNew(port: CGrafPtr; VAR rect: Rect; flags: UInt32): TQ3ViewerObject; C;
  130. FUNCTION Q3ViewerDispose(theViewer: TQ3ViewerObject): OSErr; C;
  131. {*****************************************************************************
  132.  **                                                                             **
  133.  **                    Functions to attach data to a viewer                     **
  134.  **                                                                             **
  135.  ****************************************************************************}
  136. FUNCTION Q3ViewerUseFile(theViewer: TQ3ViewerObject; refNum: LONGINT): OSErr; C;
  137. FUNCTION Q3ViewerUseData(theViewer: TQ3ViewerObject; data: UNIV Ptr; size: LONGINT): OSErr; C;
  138. {*****************************************************************************
  139.  **                                                                             **
  140.  **        Functions to write data out from the Viewer                             **
  141.  **                                                                             **
  142.  ****************************************************************************}
  143. FUNCTION Q3ViewerWriteFile(theViewer: TQ3ViewerObject; refNum: LONGINT): OSErr; C;
  144. FUNCTION Q3ViewerWriteData(theViewer: TQ3ViewerObject; data: Handle): UInt32; C;
  145. {*****************************************************************************
  146.  **                                                                             **
  147.  **        Use this function to force the Viewer to re-draw                     **
  148.  **                                                                             **
  149.  ****************************************************************************}
  150. FUNCTION Q3ViewerDraw(theViewer: TQ3ViewerObject): OSErr; C;
  151. FUNCTION Q3ViewerDrawContent(theViewer: TQ3ViewerObject): OSErr; C;
  152. FUNCTION Q3ViewerDrawControlStrip(theViewer: TQ3ViewerObject): OSErr; C;
  153. {*****************************************************************************
  154.  **                                                                             **
  155.  **        Function used by the Viewer to filter and handle events                 **
  156.  **                                                                             **
  157.  ****************************************************************************}
  158. FUNCTION Q3ViewerEvent(theViewer: TQ3ViewerObject; VAR evt: EventRecord): BOOLEAN; C;
  159. {*****************************************************************************
  160.  **                                                                             **
  161.  **        This function returns a PICT of the contents of the                  **
  162.  **        Viewer's window.  The application should dispose the PICT.             **
  163.  **                                                                             **
  164.  ****************************************************************************}
  165. FUNCTION Q3ViewerGetPict(theViewer: TQ3ViewerObject): PicHandle; C;
  166. {*****************************************************************************
  167.  **                                                                             **
  168.  **                        Calls for dealing with Buttons                         **
  169.  **                                                                             **
  170.  ****************************************************************************}
  171. FUNCTION Q3ViewerGetButtonRect(theViewer: TQ3ViewerObject; button: UInt32; VAR rect: Rect): OSErr; C;
  172. FUNCTION Q3ViewerGetCurrentButton(theViewer: TQ3ViewerObject): UInt32; C;
  173. FUNCTION Q3ViewerSetCurrentButton(theViewer: TQ3ViewerObject; button: UInt32): OSErr; C;
  174. {*****************************************************************************
  175.  **                                                                             **
  176.  **        Functions to set/get the group to be displayed by the Viewer.         **
  177.  **                                                                             **
  178.  ****************************************************************************}
  179. FUNCTION Q3ViewerUseGroup(theViewer: TQ3ViewerObject; group: TQ3GroupObject): OSErr; C;
  180. FUNCTION Q3ViewerGetGroup(theViewer: TQ3ViewerObject): TQ3GroupObject; C;
  181. {*****************************************************************************
  182.  **                                                                             **
  183.  **        Functions to set/get the color used to clear the window                 **
  184.  **                                                                             **
  185.  ****************************************************************************}
  186. FUNCTION Q3ViewerSetBackgroundColor(theViewer: TQ3ViewerObject; VAR color: TQ3ColorARGB): OSErr; C;
  187. FUNCTION Q3ViewerGetBackgroundColor(theViewer: TQ3ViewerObject; VAR color: TQ3ColorARGB): OSErr; C;
  188. {*****************************************************************************
  189.  **                                                                             **
  190.  **        Getting/Setting a Viewer's View object.  Disposal is needed.         **
  191.  **                                                                             **
  192.  ****************************************************************************}
  193. FUNCTION Q3ViewerGetView(theViewer: TQ3ViewerObject): TQ3ViewObject; C;
  194. FUNCTION Q3ViewerRestoreView(theViewer: TQ3ViewerObject): OSErr; C;
  195. {*****************************************************************************
  196.  **                                                                             **
  197.  **        Calls for setting/getting viewer flags                                 **
  198.  **                                                                             **
  199.  ****************************************************************************}
  200. FUNCTION Q3ViewerSetFlags(theViewer: TQ3ViewerObject; flags: UInt32): OSErr; C;
  201. FUNCTION Q3ViewerGetFlags(theViewer: TQ3ViewerObject): UInt32; C;
  202. {*****************************************************************************
  203.  **                                                                             **
  204.  **        Calls related to bounds/dimensions.  Bounds is the size of              **
  205.  **        the window.  Dimensions can either be the Rect from the ViewHints     **
  206.  **        or the current dimensions of the window (if you do a Set).             **
  207.  **                                                                             **
  208.  ****************************************************************************}
  209. FUNCTION Q3ViewerSetBounds(theViewer: TQ3ViewerObject; VAR bounds: Rect): OSErr; C;
  210. FUNCTION Q3ViewerGetBounds(theViewer: TQ3ViewerObject; VAR bounds: Rect): OSErr; C;
  211. FUNCTION Q3ViewerSetDimension(theViewer: TQ3ViewerObject; width: UInt32; height: UInt32): OSErr; C;
  212. FUNCTION Q3ViewerGetDimension(theViewer: TQ3ViewerObject; VAR width: UInt32; VAR height: UInt32): OSErr; C;
  213. { 1.1 }
  214. FUNCTION Q3ViewerGetMinimumDimension(theViewer: TQ3ViewerObject; VAR width: UInt32; VAR height: UInt32): OSErr; C;
  215. {*****************************************************************************
  216.  **                                                                             **
  217.  **                            Port related calls                                 **
  218.  **                                                                             **
  219.  ****************************************************************************}
  220. FUNCTION Q3ViewerSetPort(theViewer: TQ3ViewerObject; port: CGrafPtr): OSErr; C;
  221. FUNCTION Q3ViewerGetPort(theViewer: TQ3ViewerObject): CGrafPtr; C;
  222. {*****************************************************************************
  223.  **                                                                             **
  224.  **        Adjust Cursor should be called from idle loop to allow the Viewer     **
  225.  **        to change the cursor according to the cursor position/object under     **
  226.  **        the cursor.                                                             **
  227.  **                                                                             **
  228.  ****************************************************************************}
  229. FUNCTION Q3ViewerAdjustCursor(theViewer: TQ3ViewerObject; VAR pt: Point): BOOLEAN; C;
  230. FUNCTION Q3ViewerCursorChanged(theViewer: TQ3ViewerObject): OSErr; C;
  231.  
  232. {*****************************************************************************
  233.  **                                                                             **
  234.  **        Returns the state of the viewer.  See the constant defined at the     **
  235.  **        top of this file.                                                     **
  236.  **                                                                             **
  237.  ****************************************************************************}
  238. FUNCTION Q3ViewerGetState(theViewer: TQ3ViewerObject): UInt32; C;
  239. {*****************************************************************************
  240.  **                                                                             **
  241.  **                            Clipboard utilities                                 **
  242.  **                                                                             **
  243.  ****************************************************************************}
  244. FUNCTION Q3ViewerClear(theViewer: TQ3ViewerObject): OSErr; C;
  245. FUNCTION Q3ViewerCut(theViewer: TQ3ViewerObject): OSErr; C;
  246. FUNCTION Q3ViewerCopy(theViewer: TQ3ViewerObject): OSErr; C;
  247. FUNCTION Q3ViewerPaste(theViewer: TQ3ViewerObject): OSErr; C;
  248. {$ENDC}  {TARGET_OS_MAC}
  249.  
  250.  
  251.  
  252.  
  253. {$ALIGN RESET}
  254. {$POP}
  255.  
  256. {$SETC UsingIncludes := QD3DViewerIncludes}
  257.  
  258. {$ENDC} {__QD3DVIEWER__}
  259.  
  260. {$IFC NOT UsingIncludes}
  261.  END.
  262. {$ENDC}
  263.